package com.crm.entity;


import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import cn.afterturn.easypoi.excel.annotation.ExcelIgnore;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ToString
@TableName("entity")
@ApiModel(value = "Entity", description = "")
public class CompanyEntity implements Serializable {
    @TableId(type = IdType.AUTO)
    @ExcelIgnore
    private int id;

    @Excel(name = "businessId")
    private String businessId;

    @Excel(name = "CompanyNameInEnglish")
    String companyNameInEnglish;
    @Excel(name = "ProposedNameInKhmer")
    String proposedNameInKhmer;
    @Excel(name = "OriginalEntityIdentifier")
    String originalEntityIdentifier;
    @Excel(name = "CompanyStatus")
    String companyStatus;
    @Excel(name = "IncorporationDate")
    String incorporationDate;
    @Excel(name = "TaxIdentificationNumber")
    String taxIdentificationNumber;
    @Excel(name = "TaxRegistrationDate")
    String taxRegistrationDate;
    @Excel(name = "AnnualReturnLastFiledon")
    String annualReturnLastFiledon;
    @Excel(name = "Male")
    String male;
    @Excel(name = "Female")
    String female;
    @Excel(name = "NumberOfCambodianEmployees")
    String numberOfCambodianEmployees;
    @Excel(name = "NumberOfForeignEmployees")
    String numberOfForeignEmployees;

    @Excel(name = "physicalRegisteredOfficeAddress")
    String physicalRegisteredOfficeAddress;
    @Excel(name = "addressStartDate")
    String addressStartDate;
    @Excel(name = "postalRegisteredOfficeAddress")
    String postalRegisteredOfficeAddress;
    @Excel(name = "postalStartDate")
    String postalStartDate;
    @Excel(name = "contactEmail")
    String contactEmail;
    @Excel(name = "contactTelephoneNumber")
    String contactTelephoneNumber;

    @Excel(name = "fullNameParentCompany")
    String fullNameParentCompany;


    @Excel(name = "dateRegistrationParentCompany")
    String dateRegistrationParentCompany;

    @Excel(name = "countryRegistrationParentCompany")
    String countryRegistrationParentCompany;


    @Excel(name = "addressParentCompany")
    String addressParentCompany;
    @Excel(name = "startDateParentCompany")
    String startDateParentCompany;

    @TableField(exist = false)
    @ExcelCollection(name = "directors")
    ArrayList<Director> directors;
    /**
     * 创建日期
     */
    @TableField("create_time")
    private LocalDateTime createTime;
    /**
     * 删除日期
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

}
